package com.baoyouqun.domain.Enum;


import com.baomidou.mybatisplus.annotation.EnumValue;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter;

/**
 * 导航标签枚举类
 * 对应导航栏的标签分类，包含系统标识（存储值）和显示名称
 */
@Getter
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
public enum DemandTagEnum {

    /**
     * 资源标签
     * value：系统标识（如前端路由或数据库存储键）
     * name：前端展示名称
     */
    RESOURCE("resource", "资源"),

    /**
     * 市场标签
     */
    MARKET("market", "市场"),

    /**
     * 资金标签
     */
    FUND("fund", "资金"),

    /**
     * 人脉标签
     */
    NETWORK("network", "人脉");

    /**
     * 系统存储标识（用于前后端交互或数据存储）
     */
    @EnumValue
    private final String value;

    /**
     * 前端/业务显示名称
     */
    private final String name;

    // 构造方法：初始化标识和名称
    DemandTagEnum(String value, String name) {
        this.value = value;
        this.name = name;
    }

    /**
     * 根据系统存储值匹配枚举
     *
     * @param value 系统中的标识值（如"resource"）
     * @return 对应的枚举实例
     * @throws IllegalArgumentException 当值不匹配时抛出异常
     */
    public static DemandTagEnum valueOfDbValue(String value) {
        for (DemandTagEnum tab : values()) {
            if (tab.value.equals(value)) {
                return tab;
            }
        }
        throw new IllegalArgumentException("无效的导航标签标识：" + value);
    }
}
